<?php TP学习笔记心得
    // 自定义函数
    /*
    1.thinkphp3.2以上版本的自定义函数文件需要放在/Application/Common/Common/下,文件名为function.php
    2.thinkphp本身有个自定义函数dump,是在var_dump的基础上进行了优化,过滤掉了一些标签,还集成了缓存,有待后续研究
    3.thinkphp本身的自定义函数库文件在ThinkPHP/Common
    */
    
    // 模板
    /*
    1.模板文件在Application/Home/View/下建立相应的控制器名文件夹,文件夹中建立对应方法名的html文件.控制器方法中用
    $this->display()来调用模板,如果模板名与方法名不一致,则用$this->display('模板名')来调用
    2.定义模板变量的方法:
        1)$this->变量名='变量值';
        2)$this->assign('变量名','变量值');该方法可以连续赋值:$this->assign()->assign()->assign();
        3)在模板中调用变量的方法:
            1)$var['var'] 如果想在模板中使用分配的变量进行数值运算,必须使用该形式
            2)$var.var
        4)在模板中调用变量的时候,可以赋默认值,{$var|default='var'}
    3.在模板中使用函数:
        1)形式:{$var|md5=###} 其中,###代表的是变量本身,当函数的第一个参数是需要传入变量本身时,默认会自动传入,不
        需要手写,只需要写后面的参数即可.所以本例可以写作{$var|md5}.但是如果是date这样的函数,需要传入变量自身的参数位置是第二位,则需要手动
        传入,写作{$var|date='Ymd,His',###}
        2)对于一个变量要连用多个函数,用|分隔,参数用,分隔.{$var|md5|substr=0,5}
    4.Thinkphp中自定义的时间函数
        {$Think.now} 2016-01-31 10:58 pm
        {$Think.version}    获取当前版本号
        {$Think.server.http_request}   即可获得$_SERVER下的相关值.其他诸如session/get/post等等都是如此
    5.在模板中的数组遍历
        1)<volist>标签,name是数组变量名,id对应每个键值,v是自定义的名字,offset为遍历的起始坐标,length是个数,empty是当被遍历数数组不存在的
        的时候需要显示的提示文字.
        <volist name='person' id='v' offset='2' length='2' empty='无数据可循环'>
            <h4>{$v.name}|{$v.age}</h4>
        </volist>
        2)<foreach>标签,name是数组变量名,item对应每个键值,key对应键名.不支持筛选遍历的功能,也没有默认值
        <foreach name='person' item='v'>
            <h4>{$v.name}|{$v.age}</h4>
        </foreach>
        3)thinkphp模板语言常见的英文缩写
            eq  等于
            neq 不等于
            lt 小于
            elt 小于等于
            gt 大于
            glt 大于等于
            heq 全等于===
            nheq 不全等于!==
        4)<for> name对应序列号,start是起始值,end是结束值,comparison设置比较符,默认是小于
        <for name='k' start='1' end='10' comparison='elt'>
            <h4>{$k}</h4>
        </for>
    6.判断操作
        1)<if> condition是条件,里面的判断符需要用英文缩写,elseif和else要用/结束
        <if condition='$number gt 10'>
        大于10
        <elseif condition='$number lt 10'/>
            小于10
        <else/>
            等于10
        </if>
        2)<switch> name是变量名,value是条件值,多条件可以用|分隔,default要用/结束
        <switch name='number'>
            <case value='1'>1</case>
            <case value='2|5'>2或5</case>
            <case value='10'>10</case>
            <default/>都不是
        </switch>
    7.比较标签的使用
        1)比较标签的使用,当标签对应的含义成立时,输出标签包裹的内容.其他neq,lt等标签使用方法一致
        <eq name='num' value='10'>num=10</eq>
        2)如果需要'若等于,则...若不等于,则....'的形式,就配合<else/>使用
        <eq name='num' value='10'>num=10<else/>num!=10</eq>
        3)<compare>标签,在type中定义比较的方式
            <compare name='num' value='11' type='eq'>num=11<else/>num!=11</else>
    8.区间标签的使用,都可以像比较标签一样使用<else/>
        1)<in> <notin>
        <in name='num' value='1,2,3'>在区间中</in>
        <notin name='num' value='1,2,3'>不在区间中</notin> 
        <in name='num' value='1,2,3'>在区间中<else/>不在区间中</in>
        2)<between> <notbetween>
        <between name='num' value='1,10'>在区间</between>
        <between name='num' value='1,10'>在区间<else/>不在区间</between>
        3)<range>,只能用于替代in和notin标签,不能用于between和notbetween
        <range name='num' value='1,11,12' type='in'>存在</range>
    9.三元运算符
    {$num>11?'大于11':'不大于11'}
    10.模板中使用php原生语法
    <php>echo $number;</php>
    */
   
   // 调试
   /*
   1.在/Application/Conf/下建立debug.php,输入'SHOW_PAGE_TRACE'=>true,可以在页面开启调试界面
   2.G函数可以获得脚本执行时间,单位毫秒:
    G('run');#此处开始获取时间
    这里放置要测试的脚本内容
    $runtime=G('run','end');#结束获取时间
    */
 ?>